package com.situ.util.dao;
import java.util.List;


import com.situ.util.Assist;
import com.situ.util.dto.CstSerSj;
import com.situ.util.entity.CstService;

import com.situ.util.entity.SysUser;
import org.apache.ibatis.annotations.*;
/**
 * CstService的Dao接口
 * 
 * @author 
 *
 */
@Mapper
public interface CstServiceDao {

	/**
	 * 获得CstService数据的总行数,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * 
	 * @param assist
	 * @return
	 */
	long getCstServiceRowCount(Assist assist);
	
	/**
	 * 获得CstService数据集合,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * 
	 * @param assist
	 * @return
	 */
	List<CstService> selectCstService(Assist assist);
	/**
	 * 通过CstService的id获得CstService对象
	 * 
	 * @param id
	 * @return
	 */
	CstService selectCstServiceById(Integer id);
	
	/**
	 * 获得一个CstService对象,以参数CstService对象中不为空的属性作为条件进行查询,返回符合条件的第一条
	 * 
	 * @param obj
	 * @return
	 */
	CstService selectCstServiceObjSingle(CstService obj);
	
	/**
	 * 获得一个CstService对象,以参数CstService对象中不为空的属性作为条件进行查询
	 * 
	 * @param obj
	 * @return
	 */
	List<CstService> selectCstServiceByObj(CstService obj);

	/**
	 * 插入CstService到数据库,包括null值
	 * 
	 * @param value
	 * @return
	 */
	int insertCstService(CstService value);
	
	/**
	 * 插入CstService中属性值不为null的数据到数据库
	 * 
	 * @param value
	 * @return
	 */
	int insertNotNullCstService(CstService value);
	
	/**
	 * 批量插入CstService到数据库,包括null值
	 * 
	 * @param value
	 * @return
	 */
	int insertCstServiceByBatch(List<CstService> value);
	/**
	 * 通过CstService的id删除CstService
	 * 
	 * @param id
	 * @return
	 */
	int deleteCstServiceById(Integer id);
	
	/**
	 * 通过辅助工具Assist的条件删除CstService
	 * 
	 * @param assist
	 * @return
	 */
	int deleteCstServiceByAssist(Assist assist);
	
	/**
	 * 通过CstService的id更新CstService中的数据,包括null值
	 * 
	 * @param enti
	 * @return
	 */
	int updateCstServiceById(CstService enti);
	
	/**
	 * 通过CstService的id更新CstService中属性不为null的数据
	 * 
	 * @param enti
	 * @return
	 */
	int updateNotNullCstServiceById(CstService enti);
	
	/**
	 * 通过辅助工具Assist的条件更新CstService中的数据,包括null值
	 * 
	 * @param value
	 * @param assist
	 * @return
	 */
	int updateCstService(@Param("enti") CstService value, @Param("assist") Assist assist);
	
	/**
	 * 通过辅助工具Assist的条件更新CstService中属性不为null的数据
	 * 
	 * @param value
	 * @param assist
	 * @return
	 */
	int updateNotNullCstService(@Param("enti") CstService value, @Param("assist") Assist assist);


	void addServerFw(CstService cs);

	List<CstService> queryServiceByLike(CstSerSj c);

	List<CstService> queryServiceByLike2(CstSerSj c);

	@Delete("delete from cst_service where svr_id=#{value}")
	void deleteCstServiceById2(int id);

	@Update("update cst_service set svr_due_date=#{svr_due_date},svr_due_to=#{svr_due_to},svr_due_id = #{svr_due_id},svr_status=#{svr_status} where svr_id=#{svr_id}")
	void updatesdt(CstService c);

	List<CstService> queryServiceByLikeFk(CstSerSj c);

	CstService selectCstSerById(int id);

	//查客户经理
	@Select("select * from sys_user u inner join sys_role r " +
			" on r.role_id=u.usr_role_id  where u.usr_flag=1 and r.role_flag=1 and r.role_name='客户经理'")
	public List<SysUser> queryusers();

	List<CstService> queryServiceByLikeGd(CstSerSj c);

	void updateCs(CstService c);

	void updateFk(CstService c);

	void updateXxy3(CstService c);

}